/* Copyright 2001,2002,2003 NAH6 BV
 * All Rights Reserved
 *
 *  $Header: /var/lib/cvs/secphone/ui/KeyExchange/cryptoVerifier.h,v 1.3 2003/11/21 12:39:24 itsme Exp $
 *
 *
 */


#ifndef __CRYPTOVERIFIER_H__

#include "bignum.h"
#include "nhThread.h"

class CryptoVerifier : public NHThread {
public:
    CryptoVerifier(const Number& modulusprime, const Number& subgroupprime, const Number& generator);
    ~CryptoVerifier();

protected:
    virtual DWORD ThreadProc();
    virtual const char* name() const { return "CryptoVerifier"; }

private:
    const Number& m_modulus_prime;
    const Number& m_subgroup_prime;
    const Number& m_subgroup_generator;

    bool VerifyPrimes();
    bool VerifyAES();
    bool VerifySHA256();
    bool VerifyTwoFish();
    bool VerifyMemoryErasure();

    void ErrorDetectedNotification();
};

#define __CRYPTOVERIFIER_H__
#endif
